package com.administrator.scoreManageSys.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * @author Administrator
 */
public interface SystemUserAuthenticationService {

    /**
     * 登录
     *
     * @param account  用户名
     * @param password 用户密码
     * @return 执行结果
     */
    JSONObject login(String account, String password);

    /**
     * 登出
     *
     * @param userId 登出用户id
     * @return 执行结果
     */
    JSONObject systemUserSignOut(Long userId);

    /**
     * 获取菜单
     * @param role 用户角色
     * @return 菜单列表
     */
    JSONObject getUserMenu(Long role);

    /**
     * 获取用户个人信息
     * @param userId 用户id
     * @return 个人信息User
     */
    JSONObject getUser(Long userId);

    /**
     * 用户设置密保
     * @param passwordProtection 设置密保集合
     * @param userId 用户id
     * @return 操作结果
     */
    JSONObject setPasswordProtection(JSONArray passwordProtection, Long userId);


    /**
     * 用户更新密保
     * @param passwordProtection 设置密保集合
     * @param userId 用户id
     * @return 操作结果
     */
    JSONObject renewPasswordProtection(JSONArray passwordProtection, Long userId);

    /**
     * 修改密码
     * @param userId 用户id
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @return 修改结果
     */
    JSONObject changePassword(Long userId, String oldPassword, String newPassword);

    /**
     * 忘记密码
     * @param account 账号
     * @param securityAnswer 密保问题
     * @param securityQuestion 密保答案
     * @param newPassword 新密码
     * @return 操作结果
     */
    JSONObject forgotPassword(String account, Long securityAnswer, String securityQuestion, String newPassword);
}
